#ifndef _COMPARE_H_
#define _COMPARE_H_
#include "ast/exprType.h"
#include "ast/exprType.h"
#include "ast/cmpopType.h"
#include "ast/intList.h"
class IVisitor;
class Compare;
typedef QSharedPointer<Compare> ComparePtr;

class Compare: public exprType
{
public:
    explicit Compare(const exprTypePtr& left, const IntList_& ops, const ExprTypeList& comparators, int nodeId=-1);
    virtual ~Compare();
    
    
    exprTypePtr left();
    void setLeft(const exprTypePtr& left);
    
    IntList_ ops();
    void setOps(const IntList_& ops);
    
    ExprTypeList comparators();
    void setComparators(const ExprTypeList& comparators);
    
    
    virtual QString type() const;
    virtual QString toString() const;
    virtual void accept(IVisitor* visitor, const SimpleNodePtr& node);
    virtual void traverse(IVisitor* visitor);
private:
    exprTypePtr _left;
    IntList_ _ops;
    ExprTypeList _comparators;
};




#endif